
// ES6 模块的设计思想是尽量的静态化，使得编译时就能确定模块的依赖关系，以及输入和输出的变量。
// ES6 中每一个js文件都是一个单独的模块  => 里面的变量和方法 默认都是局部的

// 模块功能主要由两个命令构成：export和import。export命令用于规定模块的对外接口，import命令用于输入其他模块提供的功能。

// 一个模块就是一个独立的文件。该文件内部的所有变量，外部无法获取。如果你希望外部能够读取模块内部的某个变量，就必须使用export关键字输出该变量

// 模块化暴露的常见方式
// 1. 在想要暴露的变量和方法的声明之前添加关键词  export (逐个暴露)

console.log("demo1.js被引入");

export var a = 10;

// 报错 export应该用在变量和方法的声明之前
// var c = a + b;
// export c;

export function addA() {
    a++;
    return a;
}

// 为了给用户提供方便，让他们不用阅读文档就能加载模块，就要用到export default命令，为模块指定默认输出。
// 1.模块默认输出时,需要是变量的值或函数的声明 (不能写变量的声明)
// 2.一个模块只能设置一个默认值

// export default var a = 10;  // 报错 => 不能将变量的声明作为默认值
export default a;  // a => 10
// export default function () {
//     a++;
//     return a;
// };  // a => 10



// export { a, addA }


